home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO044.dsk
/
REVISE.DM.bas
< prev
Wrap
BASIC Source File
|
2012-02-16
|
3KB
|
56 lines
10 REM ===================
20 REM Revise DOS.MASTER
30 REM -------------------
40 REM
50 PRINT CHR$(4)"PR#3"
60 PRINT CHR$(12);
70 PRINT TAB( 24)"Change/examine DOS MASTER slots"
80 MO$ = CHR$(27) + CHR$(15):MF$ = CHR$(24) + CHR$(14)
90 PRINT TAB( 24)MO$"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"MF$
100 PRINT MO$;: FOR I = 1 TO 11: PRINT "SSSSSSS";: NEXT I: PRINT MF$
110 PRINT "This program allows you to change the slot designations in the DOS.3.3 file."
120 PRINT "It is intended for use when you change the slot of a device containing a"
130 PRINT "DOS MASTER partition."
140 PRINT MO$;: FOR I = 1 TO 11: PRINT "SSSSSSS";: NEXT I: PRINT MF$
150 PRINT CHR$(4)"BLOAD RDLINE,TCMD,A$4000": CALL 4 *4096
160 LOMEM: 6 *4096
170 ONERR GOTO 560
180 PRINT CHR$(4)"BLOAD DOS.3.3,TSYS,A$2000"
190 POKE 216,0
200 SLOTS = 2 *4096 +4 *16 +6
210 V0 = SLOTS +4:SIZE = V0 +16:VSIZ = SIZE +8:VT = VSIZE +8:ADRS = VT +8
220 VTAB 8: PRINT CHR$(11): PRINT "Presently assigned devices:": PRINT
230 FOR D = 0 TO 3
240 S = PEEK(SLOTS +D): IF NOT S THEN 290
250 PRINT "Slot ";S/16;", Drive 1 has ";:DR = 0: GOSUB 530
260 PRINT NUM;" volumes of ";SZ *2;" sectors."
270 PRINT "Slot ";S/16;", Drive 2 has ";:DR = 2: GOSUB 530
280 PRINT NUM;" volumes of ";SZ *2;" sectors.": PRINT
290 NEXT D
300 PRINT "Change what slot? (Type <ESC> when done) ";
310 PRINT CHR$(4)"RDLINE #":S$
320 GET A$: IF A$ = CHR$(27) THEN 440
330 S = VAL(S$): IF S <1 OR S >7 THEN PRINT CHR$(8);: GOTO 310
340 FOR D = 0 TO 3: IF S = PEEK(SLOTS +D)/16 THEN 360
350 NEXT D: PRINT CHR$(8);: GOTO 310
360 PRINT " to slot: ";
370 PRINT CHR$(4)"RDLINE #":T$
380 GET A$: IF A$ = CHR$(27) THEN 440
390 T = VAL(T$): IF T <1 OR T >7 OR T = S THEN PRINT CHR$(8);: GOTO 370
400 PRINT : IF T$ = S$ THEN 220
410 FOR D = 0 TO 3:S = PEEK(SLOTS +D)/16: IF NOT S THEN 430
420 IF S = VAL(S$) THEN POKE SLOTS +D,T *16:S$ = "0":CHG = 1
430 NEXT D: GOTO 220
440 IF NOT CHG THEN 520
450 PRINT : PRINT : PRINT "Ok to write new DOS.3.3 file? (Y/N) ";
460 PRINT CHR$(4)"RDLINE A":S$
470 GET A$: IF A$ < > CHR$(13) THEN PRINT CHR$(8);: GOTO 460
480 IF S$ = "N" THEN 520
490 IF S$ < >"Y" THEN PRINT CHR$(8);: GOTO 460
500 PRINT CHR$(4)"UNLOCK DOS.3.3"
510 PRINT CHR$(4)"BSAVE DOS.3.3,TSYS,A$2000,L$2700"
520 TEXT : VTAB 22: END
530 ST = PEEK(V0 +4 *D +DR) +256 * PEEK(V0 +4 *D +DR +1):SZ = PEEK(VSIZ +D +D) +256 * PEEK(VSIZ +D +D +1)
540 V = PEEK(SIZE +D +D) +256 * PEEK(SIZE +D +D +1): IF ST >V THEN ST = ST -16 *4096
550 NUM = (V -ST)/SZ -1: RETURN
560 PRINT : PRINT "Cannot find the file DOS.3.3. Aborting."